TimeStamp Subroutine

private subroutine TimeStamp(unit)

prints the current YMDHMS date as a time stamp. Example: 2008-09-29T21:00:25.624+0200 Adapted from John Burkardt

Arguments

Type IntentOptional Attributes Name
integer(kind=short), intent(in) :: unit

Variables

Type Visibility Attributes Name Initial
integer(kind=short), public :: d
character(len=8), public :: date
integer(kind=short), public :: h
integer(kind=short), public :: m
integer(kind=short), public :: mm
integer(kind=short), public :: n
integer(kind=short), public :: s
character(len=10), public :: time
integer(kind=short), public :: values(8)
integer(kind=short), public :: y
character(len=5), public :: zone

Source Code

SUBROUTINE TimeStamp &
!
(unit)

IMPLICIT NONE
! Subroutine arguments:
! Scalar arguments with intent (in):
INTEGER (KIND = short), INTENT (IN) :: unit

! Local scalars:
INTEGER (KIND = short) :: d
CHARACTER ( LEN = 8 )  :: date
INTEGER (KIND = short) :: h
INTEGER (KIND = short) :: m
INTEGER (KIND = short) :: mm
INTEGER (KIND = short) :: n
INTEGER (KIND = short) :: s
CHARACTER ( LEN = 10 ) :: time
INTEGER (KIND = short) :: values(8)
INTEGER (KIND = short) :: y
CHARACTER ( LEN = 5 )  :: zone
!------------end of declaration------------------------------------------------
 
  CALL date_and_time ( date, time, zone, values )

  y = values(1)
  m = values(2)
  d = values(3)
  h = values(5)
  n = values(6)
  s = values(7)
  mm = values(8)
  
  WRITE (unit, '(i4,a1,i2.2,a1,i2.2,a1,i2,a1,i2.2,a1,i2.2,a1,i3.3,a5)', &
         ADVANCE = 'no' ) &
         y, '-', m, '-', d, 'T', h, ':', n, ':', s, '.', mm, zone

  RETURN
END SUBROUTINE TimeStamp